home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Nebula 2
/
Nebula Two.iso
/
SourceCode
/
PriorityQueue
/
PriorityQueue.h
< prev
next >
Wrap
Text File
|
1995-06-12
|
3KB
|
99 lines
/* NAME:
** PriorityQueue:Object
**
** COPYRIGHT 1992 BY ONYSCHUK AND ASSOCIATES
** ALL RIGHTS RESERVED.
**
** REVISION HISTORY:
** Sun Aug 16 14:14:03 EDT 1992 Mark Onyschuk
** Starting point.
**
** DESCRIPTION:
** A priority queue which dequeues objects by
** unsigned integer priority.
**
** NOTE: priorityOf(n) > priorityOf(n + 1)
**
** DISCLAIMER:
** This is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as
** published by the Free Software Foundation; either version
** 1, or (at your option) any later version.
**
** This program is distributed in the hope that it will be
** useful, but WITHOUT ANY WARRANTY; without even the implied
** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
** PURPOSE. See the GNU General Public License for more
** details.
**
** You should have received a copy of the GNU General Public
** License along with this program; if not, write to the Free
** Software Foundation, Inc., 675 Mass Ave, Cambridge, MA
** 02139, USA.
*/
#import <objc/Object.h>
typedef struct _NODE
{
unsigned int priority;
id object;
} NODE;
@interface PriorityQueue:Object
{
NODE *heap;
unsigned int size, top;
}
/* INITIALIZING A PRIORITY QUEUE ****************************************/
- init;
- initCount:(int)count;
/* COPYING AND FREEING A PRIORITY QUEUE *********************************/
- copyFromZone:(NXZone *)zone;
- free;
/* QUEUEING AND DEQUEUEING OBJECTS BY PRIORITY **************************/
- addObject:anObject withPriority:(unsigned int)priority;
- removeObject;
/* COUNTING THE NUMBER OF OBJECTS IN A PRIORITY QUEUE *******************/
- (unsigned int)count;
/* DETERMINING THE HIGHEST PRIORITY IN A PRIORITY QUEUE *****************/
- (unsigned int)highestPriority;
/* EMPTYING A PRIORITY QUEUE ********************************************/
- empty;
- freeObjects;
/* COMPARING AND COMBINING PRIORITY QUEUES ******************************/
- (BOOL)isEqual:anObject;
- appendQueue:(PriorityQueue *)otherQueue;
/* GETTING AND SETTING THE CAPACITY OF A PRIORITY QUEUE *****************/
- (unsigned int)capacity;
- setAvailableCapacity:(unsigned int)capacity;
/* SENDING MESSAGES TO OBJECTS ******************************************/
- makeObjectsPerform:(SEL)aSelector;
- makeObjectsPerform:(SEL)aSelector with:anObject;
/* ARCHIVING ************************************************************/
- read:(NXTypedStream *)stream;
- write:(NXTypedStream *)stream;
@end